Хорошие читаемые имена тестов в c # - PullRequest
4 голосов
/ 25 августа 2010

Я прочитал в FsUnit , что следующие допустимые имена методов / классов в F #:

[<TestFixture>] 
type ``Given a LightBulb that has had its state set to true`` ()=
   let lightBulb = new LightBulb(true)

   [<Test>] member test.
    ``when I ask whether it is On it answers true.`` ()=
       lightBulb.On |> should be True

Есть ли способ иметь такие же имена методов или классов в c #?

Ответы [ 4 ]

6 голосов
/ 25 августа 2010

Нет, в имени метода C # не должно быть пробелов или знаков препинания.Вы можете сделать:

[TestMethod]
public void When_Asked_Whether_It_Is_On_It_Answers_True() {}
1 голос
/ 25 августа 2010

Мой предпочтительный метод именования тестов вообще не включает подчеркивания.

Например,

[Test]
public void SomeMethodShouldCallServiceManagerWithTheCorrectParameters()

С учетом сказанного, последовательность является ключевым. Нет никакого наказания за то, что вы имеете имя метода, если вы этого хотите. Так что, если вы предпочитаете разделять слова подчеркиванием, сделайте это.

Ian

1 голос
/ 25 августа 2010

делай, как говорится в книге:

public void MethodNameUnderTest_CaseExplained_ExpectedResult()

очень читабельно

0 голосов
/ 30 августа 2010

На самом деле, есть ужасный хак Unicode, который вы можете сделать, если вы действительно хотите, чтобы в ваших тестах были пробелы.

Джимми Богард объясняет:

http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/02/16/spaces-in-identifier-names-in-c.aspx

В основном, используйте символ UTF-16 0x200E в качестве пробела, взламывая клавиатуру с помощью AutoHotkey, чтобы вы могли легко вводить этот символ в случае необходимости.

Теперь вопрос в том, действительно ли вы хотите это сделать?

...