Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Bu içerik Visual Studio'daki eski Power Query SDK'sı için geçerlidir. Bugün Visual Studio Code'daki yeni Power Query SDK'sı, test edip daha fazla bilgi edinmenizi teşvik ettiğimiz tam özellikli bir test çerçevesi içerir.
Hem basit hem de karmaşık bağlayıcılar için birim testleri eklemek en iyi yöntemdir ve kesinlikle önerilir.
Birim testi Visual Studio'nun Power Query SDK'sı bağlamında gerçekleştirilir. Her bir test, bir adı, beklenen bir değeri ve gerçek bir değeri olan Fact olarak tanımlanır. Çoğu durumda, "gerçek değer", ifadenizin bir bölümünü test eden bir M ifadesidir.
Üç işlevi dışarı aktaran bir uzantı düşünün:
section Unittesting;
shared UnitTesting.ReturnsABC = () => "ABC";
shared UnitTesting.Returns123 = () => "123";
shared UnitTesting.ReturnTableWithFiveRows = () => Table.Repeat(#table({"a"},{{1}}),5);
Bu birim testi kodu birçok Olgudan ve birim testi çerçevesi (ValueToText, , Fact, FactsFacts.Summarize) için bir dizi ortak koddan oluşur. Aşağıdaki kod örnek bir Olgu kümesi sağlar (ortak kod için UnitTesting.query.pq adresine gidin):
section UnitTestingTests;
shared MyExtension.UnitTest =
[
// Put any common variables here if you only want them to be evaluated once
// Fact(<Name of the Test>, <Expected Value>, <Actual Value>)
facts =
{
Fact("Check that this function returns 'ABC'", // name of the test
"ABC", // expected value
UnitTesting.ReturnsABC() // expression to evaluate (let or single statement)
),
Fact("Check that this function returns '123'",
"123",
UnitTesting.Returns123()
),
Fact("Result should contain 5 rows",
5,
Table.RowCount(UnitTesting.ReturnTableWithFiveRows())
),
Fact("Values should be equal (using a let statement)",
"Hello World",
let
a = "Hello World"
in
a
)
},
report = Facts.Summarize(facts)
][report];
Visual Studio'da örneği çalıştırmak tüm Olguları değerlendirir ve geçiş oranlarının görsel bir özetini verir:
Bağlayıcı geliştirme sürecinin başlarında birim testi uygulamak, test temelli geliştirme ilkelerini izlemenizi sağlar. Yalnızca URI'den konak verilerini döndüren adlı Uri.GetHost bir işlev yazmanız gerektiğini düşünün. İşlevin beklenen işlevi uygun şekilde gerçekleştirdiğini doğrulamak için bir test çalışması yazarak başlayabilirsiniz:
Fact("Returns host from URI",
"https://bing.com",
Uri.GetHost("https://bing.com/subpath/query?param=1¶m2=hello")
),
Fact("Handles port number appropriately",
"https://bing.com:8080",
Uri.GetHost("https://bing.com:8080/subpath/query?param=1¶m2=hello")
)
İşlevin kenar durumlarını uygun şekilde işlediğinden emin olmak için daha fazla test yazılabilir.
İşlevin erken bir sürümü tüm testlerden geçmeyebilir:
Uri.GetHost = (url) =>
let
parts = Uri.Parts(url)
in
parts[Scheme] & "://" & parts[Host]
İşlevin son sürümü tüm birim testlerini geçmelidir. Bu sürüm, işlevin gelecekteki güncelleştirmelerinin temel işlevlerini yanlışlıkla kaldırmamasını da kolaylaştırır.